

package com.kimo.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kimo.shop.bean.model.AttachFile;
import com.kimo.shop.common.util.PageParam;

import java.io.IOException;
import java.util.List;

/**
 * @author kimo-taozhouchuan
 * Created by kimo on 2018/07/27.
 */
public interface AttachFileService extends IService<AttachFile> {

	/**
	 * 分页获取文件信息列表
	 * @param page 分页参数
	 * @param attachFile 文件搜索参数
	 * @return 文件分页结果列表
	 */
	IPage<AttachFile> getPage(PageParam<AttachFile> page, AttachFile attachFile);

	/**
	 * 上传文件
	 * @param bytes 文件byte数组
	 * @param originalName 文件原名
	 * @return 文件路径
	 * @throws IOException
	 */
	String uploadFile(byte[] bytes, String originalName) throws IOException;

	/**
	 * 上传图片
	 * @param bytes 图片byte数组
	 * @param attachFile 图片信息
	 * @param extName 文件类型
	 * @return 图片路径
	 * @throws IOException
	 */
	Long uploadImg(byte[] bytes, AttachFile attachFile,String extName) throws IOException;

	/**
	 * 根据文件路径删除文件
	 * @param filePath 文件路径
	 */
	void deleteFile(String filePath);

	/**
	 * 更新文件信息
	 * @param attachFile 文件信息
	 * @return 是否成功
	 */
	Boolean updateFile(AttachFile attachFile);

	/**
	 * 客服文件上传
	 * @param bytes
	 * @param originalFilename
	 * @return
	 * @throws IOException
	 */
    String uploadImFile(byte[] bytes, String originalFilename) throws IOException;

	/**
	 * 上传后台文件
	 * @param bytes
	 * @param originalName
	 * @param attachFile
	 * @return
	 * @throws IOException
	 */
	Long uploadPlatformFile(byte[] bytes, String originalName,AttachFile attachFile) throws IOException;


	/**
	 * 根据文件Id列表与店铺id批量删除文件记录
	 * @param ids
	 */
	void deleteByIdsAndShopId(List<Long> ids);

	/**
	 * 根据店铺id与文件id列表与分组id批量移动文件
	 * @param ids
	 * @param groupId
	 */
	void batchMoveByShopIdAndIdsAndGroupId(List<Long> ids, Long groupId);
}
